﻿using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS_Service.DomianService.Models;
using WCS_Service.Enums;
using WCS_Service.Models.SerialNetModel;

namespace WCS_Service.DomianService.Interface
{
    public interface IOpticalDomainService : IAutoEquipmentDomainService
    {
        event Func<int, Task<SerialOpticalComModel>> OppsiteBuidChange;
        event Func<string, Task> OppsiteDisConChange;
        Task<List<RunEqInfoModel<OpticalCustomInfoModel>>> QueryOpticalBaseTypeAsync(OpticalType type,string areaCode);
        Task<RunEqInfoModel<OpticalCustomInfoModel>> QueryUnavailableOpticalBaseTypeAsync(OpticalType type, string areaCode);
        Task<RunEqInfoModel<OpticalCustomInfoModel>> QueryChargeOpticalAsync();
        Task<bool> LockChargeOpticalChangeAsync(int opticalId,bool isLock);
        Task SendMsgAsync(SerialOpticalComModel msg, int id);
        Task<RunEqInfoModel<OpticalCustomInfoModel>> QueryAwqBaseRoadwayCodeAsync(OpticalType type, string roadwWay,string areaCode);
        Task<RunEqInfoModel<OpticalCustomInfoModel>> QueryOpticalInfoAsync(string id);
    }
}
